// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "content/shell/app/blink_test_platform_support.h"

#include <stddef.h>

#include "base/files/file_path.h"
#include "base/files/file_util.h"
#include "base/logging.h"
#include "base/macros.h"
#include "base/path_service.h"
#include "ui/gfx/test/fontconfig_util_linux.h"

namespace content {

namespace {

    const char* const kLocalFonts[] = {
        "AHEM____.TTF",
        "GardinerModBug.ttf",
        "GardinerModCat.ttf",
    };

} // namespace

bool CheckLayoutSystemDeps()
{
    return true;
}

bool BlinkTestPlatformInitialize()
{
    gfx::SetUpFontconfig();

    base::FilePath base_path;
    PathService::Get(base::DIR_MODULE, &base_path);
    if (!gfx::LoadConfigFileIntoFontconfig(
            base_path.Append(FILE_PATH_LITERAL("fonts.conf"))))
        return false;

    for (size_t i = 0; i < gfx::kNumSystemFontsForFontconfig; ++i) {
        if (!gfx::LoadFontIntoFontconfig(
                base::FilePath(gfx::kSystemFontsForFontconfig[i]))) {
            return false;
        }
    }
    for (size_t i = 0; i < arraysize(kLocalFonts); ++i) {
        if (!gfx::LoadFontIntoFontconfig(base_path.Append(kLocalFonts[i])))
            return false;
    }

    base::FilePath garuda_path("/usr/share/fonts/truetype/thai/Garuda.ttf");
    if (!base::PathExists(garuda_path))
        garuda_path = base::FilePath("/usr/share/fonts/truetype/tlwg/Garuda.ttf");
    if (!base::PathExists(garuda_path))
        garuda_path = base::FilePath("/usr/share/fonts/opentype/tlwg/Garuda.otf");
    if (!gfx::LoadFontIntoFontconfig(garuda_path))
        return false;

    // We special case these fonts because they're only needed in a few layout
    // tests.
    base::FilePath lohit_path(
        "/usr/share/fonts/truetype/ttf-indic-fonts-core/lohit_pa.ttf");
    if (!base::PathExists(lohit_path)) {
        lohit_path = base::FilePath(
            "/usr/share/fonts/truetype/ttf-punjabi-fonts/lohit_pa.ttf");
    }
    gfx::LoadFontIntoFontconfig(lohit_path);

    return true;
}

} // namespace content
